package com.sentiment.tools;

import java.util.regex.Pattern;

public class StringTools {
	/**
	 * 所有半角字符替换成全角字符
	 * 
	 * @param s
	 * @return
	 */
	public static String replacePunct(String s) {
		if (s != null) {
			// 所有半角字符替换成全角字符
			s = s.replace(',', '，');
			// s = s.replace('.', '。');
			s = s.replace('?', '？');
			s = s.replace('!', '！');
			s = s.replace(';', '；');
			s = s.replace(':', '：');
			// s = s.replace('[', '【');
			// s = s.replace(']', '】');

			// s = s.replaceAll("^[\\u0020\\u3000]*$", "");
			// s = s.replace("\t", "");
		}

		return s;
	}

	/**
	 * 用于匹配一个字符串是不是以以下格式开头 一. 二。 第一个字符是中文的一-十 第二个字符是.或。
	 * 
	 * @param str
	 *            匹配的字符串
	 * @return
	 */
	public static boolean startWithNewPara(String str) {
		if (Pattern.matches("[一二三四五六七八九十]{1}(\\.).*", str))
			return true;
		return false;
	}

	/**
	 * 用于匹配一个字符串是不是以以下格式结尾 任意个字符. 任意个字符！ 结尾字符是其中的一种 .。；！？
	 * 
	 * @param str
	 * @return
	 */
	public static boolean endWithNoBreak(String str) {
		if (Pattern.matches(".*[。；！？]{1}$", str))
			return false;
		return true;
	}

	/**
	 * 删除字符串中的&nbsp标签和所有空白字符
	 * 
	 * @param str
	 * @return
	 */
	public static String deleteNbspAndBlank(String str) {
		if (str == null)
			return str;
		return str.replaceAll("[\\u00a0\\s]", "");
	}
	
	public static String deleteNbsp(String str){
		if(str == null)
			return str;
		return str.replaceAll("\\u00a0", "");
	}

	/**
	 * 计算字符串中&nbsp标签的个数 用来判断是否分段
	 * 
	 * @param str
	 * @return
	 */
	public static int countNbsp(String str) {
		int count = 0;
		for (int i = 0; i < str.length(); i++) {
			if (str.charAt(i) == '\u00a0')
				count++;
		}
		return count;
	}

	/**
	 * 字符串转unicode 编码转换工具
	 * 
	 * @param s
	 *            输入的字符串
	 * @return
	 */
	public static String stringToUnicode(String s) {
		String str = "";
		for (int i = 0; i < s.length(); i++) {
			int ch = (int) s.charAt(i);
			if (ch > 255)
				str += s.charAt(i) + ": " + "\\u" + Integer.toHexString(ch) + "\n";
			else
				str += s.charAt(i) + ": " + "\\u00" + Integer.toHexString(ch) + "\n";
		}
		return str;
	}

}
